#include <REGX52.H>
#include "Delay.h"

unsigned char MatrixKey()
{
	unsigned char KeyNumber = 0;
	P1 = 0xFF;
	P1_3 = 0;
	if(P1_7 == 0){ Delay(20); while(P1_7 == 0); Delay(20); KeyNumber = 1; }
	if(P1_6 == 0){ Delay(20); while(P1_6 == 0); Delay(20); KeyNumber = 5; }
	if(P1_5 == 0){ Delay(20); while(P1_5 == 0); Delay(20); KeyNumber = 9; }
	if(P1_4 == 0){ Delay(20); while(P1_4 == 0); Delay(20); KeyNumber = 13; }
	
	P1 = 0xFF;
	P1_2 = 0;
	if(P1_7 == 0){ Delay(20); while(P1_7 == 0); Delay(20); KeyNumber = 2; }
	if(P1_6 == 0){ Delay(20); while(P1_6 == 0); Delay(20); KeyNumber = 6; }
	if(P1_5 == 0){ Delay(20); while(P1_5 == 0); Delay(20); KeyNumber = 10; }
	if(P1_4 == 0){ Delay(20); while(P1_4 == 0); Delay(20); KeyNumber = 14; }
	
	P1 = 0xFF;
	P1_1 = 0;
	if(P1_7 == 0){ Delay(20); while(P1_7 == 0); Delay(20); KeyNumber = 3; }
	if(P1_6 == 0){ Delay(20); while(P1_6 == 0); Delay(20); KeyNumber = 7; }
	if(P1_5 == 0){ Delay(20); while(P1_5 == 0); Delay(20); KeyNumber = 11; }
	if(P1_4 == 0){ Delay(20); while(P1_4 == 0); Delay(20); KeyNumber = 15; }
	
	P1 = 0xFF;
	P1_0 = 0;
	if(P1_7 == 0){ Delay(20); while(P1_7 == 0); Delay(20); KeyNumber = 4; }
	if(P1_6 == 0){ Delay(20); while(P1_6 == 0); Delay(20); KeyNumber = 8; }
	if(P1_5 == 0){ Delay(20); while(P1_5 == 0); Delay(20); KeyNumber = 12; }
	if(P1_4 == 0){ Delay(20); while(P1_4 == 0); Delay(20); KeyNumber = 16; }
	
	
	
	
	return KeyNumber;
}